package com.xyf.sys.service;

import com.xyf.sys.domain.Order;
import com.xyf.sys.domain.SysCart;
import com.xyf.sys.domain.SysCartItem;
import com.xyf.sys.vo.CartItemAdd;
import com.xyf.sys.vo.CartOrderResponse;
import com.xyf.sys.vo.ShareOrder;

import java.util.List;

/**
 * @Author R-H
 * @Date 2024/4/151706
 * @Description
 */
public interface ICartService {

    List<SysCart> list(String userId, Integer type, boolean client);

    SysCart get(Long id);

    SysCart getUserCart(Long id, String userId, boolean client);

    int update(SysCart cart);

    int delete(Long id);

    Order createPreOrder(Long cartId, String userId, String appid);

    SysCart getDefaultCart(String userId, boolean client);

    SysCart createDefaultEmptyCart(String userId, String regimentId, Integer type);

    SysCart add(SysCartItem item);

    SysCart update(SysCartItem item);

    void deleteItem(Long id, String orderId, String userId);

    void clear(Long cartId, String userId);

    CartOrderResponse shareOrder(ShareOrder cartShare);

    void collectCart(SysCart cart);

    Order preShare(ShareOrder share);

    String generateCode();

    List<SysCart> getShareList(String userId, Long cartId, String status);

}
